#include <stdio.h>

#define NN 1023
int a[NN];

#pragma cmp declare simd linear(p: ref) simdlen(8)
void add_one2(int* p)
{
    *p += 1;
}

int main(void)
{
    int i;
    int* p = a;

    for (i = 0; i < NN; i++) {
        a[i] = i;
    }

#pragma cmp simd linear(p) simdlen(8)
    for (i = 0; i < NN; i++) {
        add_one2(p);
        add_one2(&a[i]);
        p++;
    }

    for (i = 0; i < NN; i++) {
        if (a[i] != i + 2) {
            printf("failed\n");
            return 1;
        }
    }
    printf("passed\n");
    return 0;
}
